1 module directx.d3d10_1; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 version(Windows): 9 version(Direct3D_10): 10 11 public import directx.d3d10; 12 public import directx.d3d10misc; 13 public import directx.d3d10_1shader; 14 15 enum D3D10_1_DEFAULT_SAMPLE_MASK = ( 0xffffffff ); 16 enum D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP = ( 0.6 ); 17 enum D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = ( 0.6f ); 18 enum D3D10_1_GS_INPUT_REGISTER_COUNT= ( 32 ); 19 enum D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = ( 32 ); 20 enum D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = ( 128 ); 21 enum D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT= ( 32 ); 22 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS = ( 1 ); 23 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 24 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT = ( 1 ); 25 enum D3D10_1_SHADER_MAJOR_VERSION = ( 4 ); 26 enum D3D10_1_SHADER_MINOR_VERSION = ( 1 ); 27 enum D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES = ( 2048 ); 28 enum D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = ( 256 ); 29 enum D3D10_1_SO_BUFFER_SLOT_COUNT = ( 4 ); 30 enum D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = ( 1 ); 31 enum D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT = ( 64 ); 32 enum D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT = ( 32 ); 33 enum D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 34 enum D3D10_1_VS_INPUT_REGISTER_COUNT= ( 32 ); 35 enum D3D10_1_VS_OUTPUT_REGISTER_COUNT = ( 32 ); 36 37 alias DWORD D3D10_FEATURE_LEVEL1; 38 enum : D3D10_FEATURE_LEVEL1 39 { 40 D3D10_FEATURE_LEVEL_10_0 = 0xa000, 41 D3D10_FEATURE_LEVEL_10_1 = 0xa100, 42 D3D10_FEATURE_LEVEL_9_1 = 0x9100, 43 D3D10_FEATURE_LEVEL_9_2 = 0x9200, 44 D3D10_FEATURE_LEVEL_9_3 = 0x9300 45 } 46 47 struct D3D10_RENDER_TARGET_BLEND_DESC1 48 { 49 BOOL BlendEnable; 50 D3D10_BLEND SrcBlend; 51 D3D10_BLEND DestBlend; 52 D3D10_BLEND_OP BlendOp; 53 D3D10_BLEND SrcBlendAlpha; 54 D3D10_BLEND DestBlendAlpha; 55 D3D10_BLEND_OP BlendOpAlpha; 56 UINT8 RenderTargetWriteMask; 57 } 58 59 struct D3D10_BLEND_DESC1 60 { 61 BOOL AlphaToCoverageEnable; 62 BOOL IndependentBlendEnable; 63 D3D10_RENDER_TARGET_BLEND_DESC1[8] RenderTarget; 64 } 65 66 mixin(uuid!(ID3D10BlendState1, "EDAD8D99-8A35-4d6d-8566-2EA276CDE161")); 67 extern (C++) interface ID3D10BlendState1 : ID3D10BlendState { 68 void GetDesc1(D3D10_BLEND_DESC1* pDesc); 69 70 } 71 72 struct D3D10_TEXCUBE_ARRAY_SRV1 73 { 74 UINT MostDetailedMip; 75 UINT MipLevels; 76 UINT First2DArrayFace; 77 UINT NumCubes; 78 } 79 80 alias D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; 81 82 struct D3D10_SHADER_RESOURCE_VIEW_DESC1 83 { 84 DXGI_FORMAT Format; 85 D3D10_SRV_DIMENSION1 ViewDimension; 86 union 87 { 88 D3D10_BUFFER_SRV Buffer; 89 D3D10_TEX1D_SRV Texture1D; 90 D3D10_TEX1D_ARRAY_SRV Texture1DArray; 91 D3D10_TEX2D_SRV Texture2D; 92 D3D10_TEX2D_ARRAY_SRV Texture2DArray; 93 D3D10_TEX2DMS_SRV Texture2DMS; 94 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 95 D3D10_TEX3D_SRV Texture3D; 96 D3D10_TEXCUBE_SRV TextureCube; 97 D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; 98 } 99 } 100 101 mixin(uuid!(ID3D10ShaderResourceView1, "9B7E4C87-342C-4106-A19F-4F2704F689F0")); 102 extern (C++) interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView { 103 void GetDesc1(D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc); 104 } 105 106 enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS 107 { 108 D3D10_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, 109 D3D10_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe 110 } 111 112 mixin(uuid!(ID3D10Device1, "9B7E4C8F-342C-4106-A19F-4F2704F689F0")); 113 extern (C++) interface ID3D10Device1 : ID3D10Device { 114 HRESULT CreateShaderResourceView1( 115 ID3D10Resource pResource, 116 const(D3D10_SHADER_RESOURCE_VIEW_DESC1)* pDesc, 117 ID3D10ShaderResourceView1* ppSRView); 118 119 HRESULT CreateBlendState1( 120 const(D3D10_BLEND_DESC1)* pBlendStateDesc, 121 ID3D10BlendState1* ppBlendState); 122 123 D3D10_FEATURE_LEVEL1 GetFeatureLevel(); 124 } 125 126 enum D3D10_1_SDK_VERSION = 0x20; 127 128 /////////////////////////////////////////////////////////////////////////// 129 // D3D10CreateDevice1 130 // ------------------ 131 // 132 // pAdapter 133 // If NULL, D3D10CreateDevice1 will choose the primary adapter and 134 // create a new instance from a temporarily created IDXGIFactory. 135 // If non-NULL, D3D10CreateDevice1 will register the appropriate 136 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 137 // creating the device. 138 // DriverType 139 // Specifies the driver type to be created: hardware, reference or 140 // null. 141 // Software 142 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 143 // non-Software driver types. 144 // Flags 145 // Any of those documented for D3D10CreateDeviceAndSwapChain1. 146 // HardwareLevel 147 // Any of those documented for D3D10CreateDeviceAndSwapChain1. 148 // SDKVersion 149 // SDK version. Use the D3D10_1_SDK_VERSION macro. 150 // ppDevice 151 // Pointer to returned interface. 152 // 153 // Return Values 154 // Any of those documented for 155 // CreateDXGIFactory 156 // IDXGIFactory::EnumAdapters 157 // IDXGIAdapter::RegisterDriver 158 // D3D10CreateDevice1 159 // 160 /////////////////////////////////////////////////////////////////////////// 161 162 __gshared PFN_D3D10_CREATE_DEVICE1 D3D10CreateDevice1; 163 164 extern (Windows) { 165 alias PFN_D3D10_CREATE_DEVICE1 = HRESULT function( 166 IDXGIAdapter pAdapter, 167 D3D10_DRIVER_TYPE DriverType, 168 HMODULE Software, 169 UINT Flags, 170 D3D10_FEATURE_LEVEL1 HardwareLevel, 171 UINT SDKVersion, 172 ID3D10Device1 *ppDevice); 173 } 174 175 /////////////////////////////////////////////////////////////////////////// 176 // D3D10CreateDeviceAndSwapChain1 177 // ------------------------------ 178 // 179 // ppAdapter 180 // If NULL, D3D10CreateDevice1 will choose the primary adapter and 181 // create a new instance from a temporarily created IDXGIFactory. 182 // If non-NULL, D3D10CreateDevice1 will register the appropriate 183 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 184 // creating the device. 185 // DriverType 186 // Specifies the driver type to be created: hardware, reference or 187 // null. 188 // Software 189 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 190 // non-Software driver types. 191 // Flags 192 // Any of those documented for D3D10CreateDevice1. 193 // HardwareLevel 194 // Any of: 195 // D3D10_CREATE_LEVEL_10_0 196 // D3D10_CREATE_LEVEL_10_1 197 // SDKVersion 198 // SDK version. Use the D3D10_1_SDK_VERSION macro. 199 // pSwapChainDesc 200 // Swap chain description, may be NULL. 201 // ppSwapChain 202 // Pointer to returned interface. May be NULL. 203 // ppDevice 204 // Pointer to returned interface. 205 // 206 // Return Values 207 // Any of those documented for 208 // CreateDXGIFactory 209 // IDXGIFactory::EnumAdapters 210 // IDXGIAdapter::RegisterDriver 211 // D3D10CreateDevice1 212 // IDXGIFactory::CreateSwapChain 213 // 214 /////////////////////////////////////////////////////////////////////////// 215 216 __gshared PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1 D3D10CreateDeviceAndSwapChain1; 217 218 extern (Windows) { 219 alias PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1 = HRESULT function( 220 IDXGIAdapter pAdapter, 221 D3D10_DRIVER_TYPE DriverType, 222 HMODULE Software, 223 UINT Flags, 224 D3D10_FEATURE_LEVEL1 HardwareLevel, 225 UINT SDKVersion, 226 DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, 227 IDXGISwapChain* ppSwapChain, 228 ID3D10Device1* ppDevice); 229 }